package com.sys.goods.service;

import java.util.Map;

import com.sys.common.pojo.ApiResponse;
import com.sys.common.util.PageInfoUtil;
import com.sys.goods.pojo.AAddress;
import com.sys.goods.pojo.ABlindbox;
import com.sys.goods.pojo.AGoods;



public interface IGoodsDbService
{
	/* == 商品操作开始 == */
	/**
	 * 保存一条商品
	 * 
	 * @param admins
	 * @return
	 */
	ApiResponse<Object> saveOneAGoodsService(AGoods goods);

	/**
	 * 更新一条商品
	 *
	 * @param admins
	 * @return
	 */
	ApiResponse<Object> updateOneAGoodsService(AGoods goods);
	
	/**
	 * 更新一条商品
	 *
	 * @param ABlindbox
	 * @param paramsMap 其它辅助信息
	 * @return
	 */
	ApiResponse<Object> updateOneAGoodsService(AGoods AGoods, Map<String, Object> paramsMap);

	/**
	 * 删除一条商品
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<Object> deleteOneAGoodsService(Map<String, Object> condMap);

	/**
	 * 查询一条商品
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<AGoods> findOneAGoodsService(Map<String, Object> condMap);

	/**
	 * 查询多条商品
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<AGoods> findCondListAGoodsService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/* == 商品操作结束 == */

	/* == 盲盒操作开始 == */
	/**
	 * 保存一条盲盒
	 * 
	 * @param users
	 * @return
	 */
	ApiResponse<Object> saveOneABlindboxService(ABlindbox blindbox);

	/**
	 * 更新一条盲盒
	 *
	 * @param ABlindbox
	 * @return
	 */
	ApiResponse<Object> updateOneABlindboxService(ABlindbox blindbox);

	/**
	 * 更新一条盲盒
	 *
	 * @param ABlindbox
	 * @param paramsMap 其它辅助信息
	 * @return
	 */
	ApiResponse<Object> updateOneABlindboxService(ABlindbox blindbox, Map<String, Object> paramsMap);

	/**
	 * 删除一条盲盒
	 *
	 * @param users
	 * @return
	 */
	ApiResponse<Object> deleteOneABlindboxService(Map<String, Object> condMap);

	/**
	 * 查询一条盲盒
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<ABlindbox> findOneABlindboxService(Map<String, Object> condMap);

	/**
	 * 查询多条盲盒
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<ABlindbox> findCondListABlindboxService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/* == 盲盒操作结束 == */

	/* == 收货地址表操作开始 == */
	/**
	 * 添加一条收货地址表
	 * 
	 * @param demoAAddress 收货地址表的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> saveOneAAddressService(AAddress address);

	/**
	 * 更新一条收货地址表
	 * 
	 * @param demoAAddress 收货地址表的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> updateOneAAddressService(AAddress address);
	
	/**
	 * 更新一条收货地址表
	 * 
	 * @param demoAAddress 收货地址表的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> updateBatchAAddressService(Map<String,Object> condMap);

	/**
	 * 删除一条收货地址表
	 * 
	 * @param condMap 删除的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> deleteOneAAddressService(Map<String, Object> condMap);

	/**
	 * 查询多条收货地址表
	 * 
	 * @param pageInfoUtil 封装的分页对象;{{@link PageInfoUtil}
	 * @param condMap      搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是AAAddress
	 */
	ApiResponse<AAddress> findCondListAAddressService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

	/**
	 * 查询一条收货地址表
	 * 
	 * @param condMap 搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是AAAddress
	 */
	ApiResponse<AAddress> findOneAAddressService(Map<String, Object> condMap);

	/* == 收货地址表操作结束 == */
}
